/**
 * 
 */
package com.personal.Visualplan.service;

import java.sql.Timestamp;
import java.util.List;

import com.personal.Visualplan.entity.Plan;

/**
 * <p> Project name:Visualplan </p>
 * <p> Class name:PlanService </p>
 * @author "JiHongru"
 * @version
 * @date 2020年3月2日下午5:00:20
 * @description 该接口定义与plan有关的逻辑处理函数，基于plan表的dao类提供的方法
 *
 */
public interface PlanService {

	/**
	 * 发布任务
	 * 
	 * @return Plan
	 *
	 */
	public Plan releasePlan(Plan plan);
	
	/**
	  *  根据status查找任务
	 * @param status
	 * @return
	 */
	public List<Plan> findPlansByStatus(int status, int user_id);
	
	/**
	 * 根据id查找Plan
	 * 
	 * @param id
	 * @return
	 */
	public Plan findPlanById(int id);
	
	/**
	 * 添加或者更新plan
	 * 
	 * @return Plan
	 *
	 */
	public Plan save(Plan plan);
	
	/**
	 * 根据用户和标签查询一段时间内的计划
	 * 
	 * @param userId
	 * @param tagId
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public List<Plan> findPlansByUserAndTag(int userId, int tagId, Timestamp startTime, Timestamp endTime);
	
	/**
	 * 根据用户和标签查询当天内的计划
	 * 
	 * @param userId
	 * @param tagId
	 * @return
	 */
	public List<Plan> findPlansByUserAndTag(int userId, int tagId);
}
